/**
 * 我们会传递给你一个包含两个数字的数组。返回这两个数字和它们之间所有数字的和。
 * 最小的数字并非总在最前面。
 * @param arr
 * @returns {number}
 */

function sumAll(arr) {
    var max = Math.max(...arr);
    var min = Math.min(...arr);
    var sum = 0;
    if(min === max) {
        sum = min+max;
    }else{
        for(var i=min; i<=max; i++){
            sum += i;
        }
    }
    return sum;
}

sumAll([1, 4]);
console.log(sumAll([1, 4]));


const array1 = [1,4];
const reducer = (accumulator, currentValue) => accumulator + currentValue;

// 1 + 2 + 3 + 4
console.log(array1.reduce(reducer));



function sumAll2(arr) {
    var left = Math.min.apply(null, arr);
    var right = Math.max.apply(null, arr);
    var numArr = [];

    for (var i = left; i <= right; i++) {
        numArr.push(i);
    }

    return numArr.reduce(function(prev, next) {
        return prev + next;
    })
}
sumAll2([1, 4]);
console.log(sumAll2([1, 4]));